/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package compilador.analisador;

import compilador.arquivo.Variavel;
import java.util.ArrayList;
import java.util.HashMap;

/**
 *
 * @author Deivide
 */
public class Sintatico {

    DescricaoRegular desc;
    HashMap<Integer, Token> tokens = null;
//    ArrayList<Integer> Linhas;
    ArrayList<Variavel> variaveis;

    public Sintatico(HashMap<Integer, Token> tokens)
    {
        this.tokens = tokens;
//        this.Linhas = Linhas;
    }

    public void descricaoRegular()
    {
//        desc=new DescricaoRegular(this.tokens,this.Linhas);
        desc = new DescricaoRegular(this.tokens);
        this.variaveis=desc.descricao();
        Variavel var=this.variaveis.get(0);
    }
    
    public void mostraVariaveis()
    {
        int i=0,lin=0;
        String x=null;
        //String last=(String) this.tokens.getLast();
        String last = this.tokens.get(this.tokens.size() - 1).getToken();
        Variavel var=this.variaveis.get(i);
        while (var.getNome().compareTo(last)!=0)
        {
            System.out.print("Linha: ");
            System.out.print(var.getLinha());
            System.out.println(".");
            System.out.print("Nome: ");
            System.out.print(var.getNome());
            System.out.println(".");
            System.out.print("Tipo: ");
            System.out.print(var.getTipo());
            System.out.println(".\n");
            i++;
            var=this.variaveis.get(i);
        }
        System.out.print("Linha: ");
        System.out.print(var.getLinha());
        System.out.println(".");
        System.out.print("Nome: ");
        System.out.print(var.getNome());
        System.out.println(".");
        System.out.print("Tipo: ");
        System.out.print(var.getTipo());
        System.out.println(".\n");
    }

    //to aki
    public void gerarArvoreSintatica()
    {

    }
}
